package com.swiot.biz.mapper;

import java.util.List;
import com.swiot.biz.domain.Template;

/**
 * 模板基础Mapper接口
 * 
 * @author kingdom
 * @date 2025-08-25
 */
public interface TemplateMapper 
{
    /**
     * 查询模板基础
     * 
     * @param id 模板基础主键
     * @return 模板基础
     */
    public Template selectTemplateById(String id);

    /**
     * 查询模板基础列表
     * 
     * @param template 模板基础
     * @return 模板基础集合
     */
    public List<Template> selectTemplateList(Template template);

    /**
     * 新增模板基础
     * 
     * @param template 模板基础
     * @return 结果
     */
    public int insertTemplate(Template template);

    /**
     * 修改模板基础
     * 
     * @param template 模板基础
     * @return 结果
     */
    public int updateTemplate(Template template);

    /**
     * 删除模板基础
     * 
     * @param id 模板基础主键
     * @return 结果
     */
    public int deleteTemplateById(String id);

    /**
     * 批量删除模板基础
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTemplateByIds(String[] ids);

    /**
     * 执行创建表SQL
     * 
     * @param createTableSQL 创建表的SQL语句
     * @return 结果
     */
    public int executeCreateTableSQL(String createTableSQL);
    
    /**
     * 检查表是否存在
     * 
     * @param tableName 表名
     * @return 表是否存在
     */
    public int checkTableExists(String tableName);
    
    /**
     * 检查字段是否存在
     * 
     * @param tableName 表名
     * @param columnName 字段名
     * @return 字段是否存在
     */
    public int checkColumnExists(String tableName, String columnName);
    
    /**
     * 查询表的所有字段名
     * 
     * @param tableName 表名
     * @return 字段名列表
     */
    public List<String> getTableColumns(String tableName);
    
    /**
     * 根据模板名查询模板
     * 
     * @param templateName 模板名
     * @return 模板基础
     */
    public Template selectTemplateByName(String templateName);
}
